const Redis = require("ioredis");
const redis = new Redis();

redis.subscribe("my-channel-1", "my-channel-2", (err, count) => {
	if (err) {
		// 就像其他命令一样， subscribe() 可能由于某些原因而失败，
		// 网络问题。
		console.error("Failed to subscribe: %s", err.message);
	} else {
		// `count` 表示该客户端当前订阅的频道数。
		console.log(
			`Subscribed successfully! This client is currently subscribed to ${count} channels.`
		);
	}
});

redis.on("message", (channel, message) => {
	console.log(`Received ${message} from ${channel}`);
});

// 还有一个事件叫做'messageBuffer'，和'message'一样，除了
// 它返回缓冲区而不是字符串。
// 当消息是二进制数据时很有用。
redis.on("messageBuffer", (channel, message) => {
	// `channel` 和 `message` 都是缓冲区。
	console.log(channel, message);
});
